package PayType

// PayType 定义支付类型结构体
type PayType struct {
	Num         int
	PayTypeName string
}

// 定义具体的支付类型常量
var (
	WECHATPAY = PayType{1, "微信支付"}
	ALIPAY    = PayType{2, "支付宝"}
)

// Value 返回支付类型对应的数值
func (pt PayType) Value() int {
	return pt.Num
}

// GetPayTypeName 返回支付类型的名称
func (pt PayType) GetPayTypeName() string {
	return pt.PayTypeName
}

// Instance 根据数值查找对应的支付类型
func Instance(value int) *PayType {
	payTypes := []PayType{WECHATPAY, ALIPAY}
	for _, pt := range payTypes {
		if pt.Value() == value {
			return &pt
		}
	}
	return nil
}
